package ejecutables;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class Tester {

	/**
	 * @param args
	 * 0 - <archivoConLaGramatica.txt>
	 * 1 - <ArchivoConLasCadenasATestear.txt>
	 * Obs: Se crear'a el archivo <ArchivoConLasCadenasATestear.xml> 
	 */
	public static void main(String[] args) {
		// Creo el nombre del .xml
		// Cheqeos
		if (args.length < 2) {
			System.out
					.println("Uso correcto:Tester.java <archivo_gramatica>.txt <archivo_cadenas.txt>  ");
		} else {
			String gramaFile = args[0];
			String cadenasFile = args[1];
			String tablaFile = gramaFile.substring(0,
					gramaFile.length() - 4).toString()
					+ ".xml";

			System.out.println(gramaFile+"\n"+ cadenasFile +"\n"+tablaFile);
			String[] parametrosGramaticaYTabla = { gramaFile, tablaFile };
			String[] parametrosAnalizadorMain = { tablaFile, cadenasFile };
			try{
				ejecutables.GramaticaYTabla.main(parametrosGramaticaYTabla);
				ejecutables.AnalizadorMain.main(parametrosAnalizadorMain);
				Boolean seleccionCorrecta = false;
				String seleccion = "";
				Scanner in = new Scanner(System.in);
				System.out.println("Desea eliminar el archivo XML? (s/n)): ");
				while(!seleccionCorrecta){
					seleccion = in.nextLine();
					if(seleccion!=null && (seleccion.toUpperCase().equals("S") || seleccion.toUpperCase().equals("N"))){
						seleccionCorrecta = true;
					}else {
						System.out.println("debe ingresar la letra S o N.");
					}
				}
				if(seleccionCorrecta && seleccion != null && seleccion.toUpperCase().equals("S")){
					File file = new File(tablaFile);
					
					if (!file.exists())
					      System.out.println("No existe el archivo.");
					if (!file.canWrite())
						System.out.println("No se puede borrar el archivo.");
					
					boolean success = file.delete();

				    if (!success)
				      System.out.println("Fallo el borrado.");
				}
				
			}catch(IOException ioe){
					ioe.getStackTrace();
			} catch (Exception e) {
				e.getStackTrace();
			}
			
		}

	}

}
